using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Reflection;

namespace Charisma.Conventions
{
    [ContractClass(typeof (RepositoryConventionContract))]
    public interface IRepositoryConvention : IConvention
    {
        IEnumerable<PropertyInfo> Find(Type type);
    }

    [ContractClassFor(typeof (IRepositoryConvention))]
    internal abstract class RepositoryConventionContract : IRepositoryConvention
    {
        #region IRepositoryConvention Members

        public IEnumerable<PropertyInfo> Find(Type type)
        {
            Contract.Requires(type != null);
            return null;
        }

        #endregion
    }
}